package com.code.test.second.hash;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * 349. 两个数组的交集
 * 力扣题目链接
 * <p>
 * 题意：给定两个数组，编写一个函数来计算它们的交集。
 */
public class SCode349 {
    public static void main(String[] args) {
        int[] num1 = {12,2,2,1};
        int[] num2 = {1,2,2};

        int[] section = intersection(num1, num2);
        System.out.println(Arrays.toString(section));
    }

    public static int[] intersection(int[] num1, int[] num2) {
        Set<Integer> s1 = new HashSet<>();
        Set<Integer> ret = new HashSet<>();

        for (int i : num1) {
            s1.add(i);
        }

        for (int i : num2) {
            if (s1.contains(i)) {
                //第一个有的才放进来，所以是交集
                ret.add(i);
            }
        }

        return ret.stream().mapToInt(x -> x).toArray();

    }

}
